package net.stogi.common.gwt.frame.client.core;

import net.stogi.common.gwt.dispatch.client.core.ActionManager;
import net.stogi.common.gwt.frame.client.module.ModuleFactoryRegistry;

public abstract class AbstractApplicationManager implements ApplicationManager {

	protected ActionManager actionManager;

	protected CacheManager cacheManager;

	protected EventBus eventBus;

	protected LayoutManager layoutManager;

	protected ModuleFactoryRegistry moduleFactoryRegistry;

	public AbstractApplicationManager(ActionManager actionManager, CacheManager cacheManager, EventBus eventBus,
			LayoutManager layoutManager, ModuleFactoryRegistry moduleFactoryRegistry) {
		this.actionManager = actionManager;
		this.cacheManager = cacheManager;
		this.eventBus = eventBus;
		this.layoutManager = layoutManager;
		this.moduleFactoryRegistry = moduleFactoryRegistry;
	}

	protected abstract void initFactories();

	protected abstract void initHandlers();

	protected abstract void initModules();
}
